package models

import "log"

// 系统配置信息表
type Config struct {
	ConKey string `json:"con_key" db:"con_key"` // 配置项
	ConVal string `json:"con_val" db:"con_val"` // 配置的值
	Status int    `json:"status" db:"status"`   // 状态 状态   0：显示  1：隐藏
	Remark string `json:"remark" db:"remark"`   // 备注

}

func GetConfigList4Pager(form SearchForm) *PageResult {
	sqlWhere := " status = 0 " //  sql条件 只显示状态为0 的数据

	params := make([]interface{}, 0)

	// todo sql条件 可以自定义
	// i := 1
	// key := form.GetStr("key")
	// if len(key) > 0 {
	// 	params = append(params, "%"+key+"%")
	// 	sqlWhere += " and (key like $" + utils.IntToStr(i) + " or value like $" + utils.IntToStr(i) +
	// 		" or remark like $" + utils.IntToStr(i) + " or name like $" + utils.IntToStr(i) + ")"
	// 	i++
	// }
	return PageHavePre("", "", "*", "sys_config", sqlWhere, "con_key", form.Page, params...)
}

// 检查Key 是否有
func HaveConfigKey(key string) bool {
	sqlCheck := "select count(1) from sys_config where  con_key = $1"
	db, _ := OpenDB()
	defer db.Close()
	var result = 0
	err := db.Get(&result, sqlCheck, key)
	if err != nil {
		log.Fatal(err)
		result = -1
	}
	return result > 0
}

// 添加用户
func AddConfigData(data *Config) int64 {

	sqlSave := `
		INSERT INTO sys_config(  con_key  ,con_val   ,status   ,remark  )
		
		VALUES (  :con_key  ,:con_val   ,:status   ,:remark  )`
	db, _ := OpenDB()
	defer db.Close()
	result, err := db.NamedExec(sqlSave, data)
	if err != nil {
		log.Fatalln(err)
		return 0
	} else {
		i, _ := result.RowsAffected()
		return i
	}
}

// 更新
func UpdateConfig(data *Config) int64 {
	sqlSave := `update sys_config set con_val=:con_val  , remark=:remark 
	where con_key=:con_key`
	db, _ := OpenDB()
	defer db.Close()
	result, err := db.NamedExec(sqlSave, data)
	if err != nil {
		log.Fatalln(err)
		return 0
	} else {
		i, _ := result.RowsAffected()
		return i
	}
}
